前言
kafka 集群搭建。
搭建环境
- jdk 1.8.0_161
- zookeeper-3.4.9
- kafka-1.1.0
- 同一网段的三台虚拟机:192.168.1.111, 192.168.1.112, 192.168.1.113
集群配置
broker.id属性是当前机器在集群中的唯一标识,和zookeeper的myid性质一样。
192.168.1.111
# 集群唯一标识 |
192.168.1.112
# 集群唯一标识 |
192.168.1.113
# 集群唯一标识 |
配置完成之后,一一启动集群中各broker即可。
集群状态
通过在集群中创建一个新的topic,来查看该topic在集群中的分区,复制等情况。
创建3分区-1副本的topic
[root@localhost bin]# ./kafka-topics.sh --create --zookeeper 192.168.1.111:2181,192.168.1.112:2181,192.168.1.113:2181 --replication-factor 1 --partitions 3 --topic my-replicated-topic |
查看my-replicated-topic集群状态
[root@localhost bin]# ./kafka-topics.sh --describe --zookeeper 192.168.1.111:2181,192.168.1.112:2181,192.168.1.113:2181 --topic my-replicated-topic |
节点类型 | 职责描述 |
---|---|
leader | 每个分区都有一个leader,负责该分区所有的读写及同步操作 |
replicas | 副本集,作为数据冗余备份而存在 |
in-sync replicas | 副本集中数据紧跟leader的节点列表,是动态变化的,当某副本数据落后leader太多时,将被移出in-sync,作为候选leader而存在 |
遇到的问题
InconsistentBrokerIdException 启动异常
[2018-05-01 02:12:52,559] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) |
问题原因:修改了broker.id的值导致的,启动时发现和meta.properties中的值不一致抛出异常,启动失败。
解决办法:找到配置文件中log.dirs所在位置,修改meta.properties文件中broker.id的值保持一致。
[root@localhost kafka-logs]# cd /tmp/kafka-logs |
修改完成之后,重新启动服务即可。
参考链接